﻿using Modelo;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Terminal.Models;

namespace Terminal.Controllers
{
    public class HomeController : Controller
    {
        private DaoGenerico dao;
        private TrabajoFinalDbContext db;
        private Consultas consultas;

        public HomeController()
            : base()
        {
            this.dao = new DaoGenerico();
            this.db = this.dao.db;
            this.consultas = this.dao.consultas;
        }

        public ActionResult Index()
        {
            return View();
        }

        //[HttpGet]
        //public ActionResult SearchLocalidad()
        //{
        //    return View();
        //}

        [HttpPost]
        public ActionResult SearchLocalidad(string input)
        {
            int codigo = -1;
            if (!string.IsNullOrWhiteSpace(input) && int.TryParse(input, out codigo))
            {
                Localidad localidad = consultas.LocalidadPorCodigo(codigo);
                if (localidad != null)
                {
                    return View(model: localidad);
                }
            }
            return View(new Localidad());
        }

        //[HttpGet]
        //public ActionResult SearchEmpresa()
        //{
        //    return View();
        //}

        [HttpPost]
        public ActionResult SearchEmpresa(string input)
        {
            int codigo = -1;
            if (!string.IsNullOrWhiteSpace(input) && int.TryParse(input, out codigo))
            {
                Empresa empresa = consultas.EmpresaPorCodigo(codigo);
                if (empresa != null)
                {
                    return View(model: empresa);
                }
            }
            return View(new Empresa());
        }

        public ActionResult QueryToques()
        {
            return View();
        }

        [HttpPost]
        public ActionResult QueryToques(DateTime FechaInicial, DateTime FechaFinal)
        {
            if (((FechaFinal - FechaInicial).TotalDays <= 30) && (FechaInicial <= FechaFinal))
            {
                ViewBag.ErrorFechas = false;
                ViewBag.FechaInicial = FechaInicial;
                ViewBag.FechaFinal = FechaFinal;
                List<EmpresaConCantidadDeToques> empresasConCantidadDeToques = consultas.ToquesEntreFechas(FechaInicial,FechaFinal);
                return View("QueryResult", model: empresasConCantidadDeToques);
            }
            ViewBag.ErrorFechas = true;
            return View();
        }
    }
}
